package com.dys.testpolymorphic;

/**
 * @className: com.dys.testpolymorphic.Test
 * @description: com.dys.testpolymorphic
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/07/20 下午11:24
 */
public class Test {
    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) {
        // 创建Cat类的具体对象
        // Cat cat = new Cat();
        // 创建Girl类的具体对象
        Girl girl = new Girl();
        // 跟小猫玩
        // girl.play(cat);

        // 跟小狗玩
        // Dog dog = new Dog();
        // girl.play(dog);

        // 跟小动物玩：程序的拓展性更好
        // Animal animal = new Animal();
        // Dog dog2 = new Dog();
        Pig pig = new Pig();
        Animal animal = pig;
        // 向下转型：为了获取子类特有的内容
        Pig pig2 = (Pig) animal;
        pig2.weight = 200.5;
        pig2.eat();
        girl.play(animal);
    }
}
